#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
生物序列分析工具
功能：计算核酸序列的互补序列、反向互补序列和GC含量

版本: 1.0.0
作者: 陈振玺
"""

import argparse
from Bio.Seq import Seq
from Bio.SeqUtils import gc_fraction


def analyze_sequence(sequence):
    """
    分析核酸序列，计算互补序列、反向互补序列和GC含量
    
    Args:
        sequence (str): 核酸序列
        
    Returns:
        dict: 包含互补序列、反向互补序列和GC含量的字典
    """
    # 创建Seq对象
    seq = Seq(sequence)
    
    # 计算互补序列
    complement_seq = str(seq.complement())
    
    # 计算反向互补序列
    reverse_complement_seq = str(seq.reverse_complement())
    
    # 计算GC含量
    gc_content = gc_fraction(seq) * 100
    
    return {
        'complement': complement_seq,
        'reverse_complement': reverse_complement_seq,
        'gc_content': gc_content
    }


def main():
    """
    主函数，处理命令行参数并执行序列分析
    """
    parser = argparse.ArgumentParser(description='生物序列分析工具')
    parser.add_argument('sequence', help='输入的核酸序列')
    parser.add_argument('--version', action='version', version='生物序列分析工具 1.0.0 (作者: 陈振玺)')
    
    args = parser.parse_args()
    
    # 分析序列
    result = analyze_sequence(args.sequence)
    
    # 输出结果
    print(f"原始序列: {args.sequence}")
    print(f"互补序列: {result['complement']}")
    print(f"反向互补序列: {result['reverse_complement']}")
    print(f"GC含量: {result['gc_content']:.2f}%")


if __name__ == '__main__':
    main()